package principal;

import java.util.Vector;

public class Mapa {
	public static final int MAX_columnas = 12;
	public static final int MAX_filas = 12;
	
	
	protected Robot r; //el unico robot que va a haber
	protected Vector<Objeto> obstaculos; //vector de obstaculos que va a haber en el mapa
	
	
	public Mapa() {
		r = new Robot(1,1,this); 
		obstaculos = new Vector<Objeto>();
		generarObstaculos(); 
	}
	
	private void generarObstaculos() {
		for(int i = 0;i<MAX_filas;i++) {
			Objeto pared1 = new Objeto(i,0,"pared");
			this.obstaculos.add(pared1);
			if(i!=0) {
				Objeto pared2 = new Objeto(0,i,"pared");
				this.obstaculos.add(pared2);
			}
			
		}
		for (int i=11;i>0;i--) {
			Objeto pared1 = new Objeto(i,11,"pared");
			this.obstaculos.add(pared1);
			if(i!=11) {
				Objeto pared2 = new Objeto(11,i,"pared");
				this.obstaculos.add(pared2);
			}
		}
		
		Objeto pared = new Objeto(4,4,"pared");
		this.obstaculos.add(pared);
		pared = new Objeto(4,6,"pared");
		this.obstaculos.add(pared);
		pared = new Objeto(5,5,"pared");
		this.obstaculos.add(pared);
		pared = new Objeto(6,4,"pared");
		this.obstaculos.add(pared);
		pared = new Objeto(6,6,"pared");
		this.obstaculos.add(pared);
		
		
	}
	
	public Robot getRobot() {
		return r;
	}
	
	public Vector<Objeto> getObstaculos() {
		return this.obstaculos;
	}
	
	//determina si hay algun obstaculo en la celda (x,y)
	public boolean hayObstaculo(int x, int y) {
		boolean aux = false;
		for (Objeto o:this.obstaculos) {
			if((o.getX() == x) && (o.getY() == y)) aux = true;
		}
		return aux;
	}
	
	//determina si el mapa esta completado
	public boolean completado() {
		//en este caso, el mapa esta completado si el robot llega a la celda (10,10)
		boolean aux = (this.r.getX() == 10) && (this.r.getY() == 10);
		return aux;
	}

}
